/**
 * 一个规范的包，它的结构组成必须符合一下3点要求
 * 1、包必须以单独的目录而存在
 * 2、包的顶级目录下要必须包含package.json这个包管理配置文件
 * 3、package.json中必须包含name,version,main这三个属性，分别代表包的名字、版本号、包的入口
 * 
 * npm install --save-dev  开发过程中需要但是部署生产之后又不需要的
 * npm i -D 
 * npm i 包 -g 全局
 * npm install moment
 * npm install i5ting_toc
 * 
 * 
 * 
 * 
 * 
 * 模块的加载机制
 * 1、优先从缓存中加载
 * 模块在第一次加载后会被缓存，这也意味着多次调用require()不会导致模块的代码被执行多次
 * 注意：不论是内置模块、用户自定义模块，还是第三方模块，他们都会优先从缓存中加载，从而提高模块的加载效率。
 * 2、内置模块的加载机制
 * 内置模块是由node.js官方提供的模块，内置模块的加载优先级最高。
 * 3、第三方模块的加载机制
 * 如果传递给require()的模块标识符不是一个内置模块，也没有以./ 或 ../ 开头，则node.js会从当前模块的父目录开始，尝试/node_modules文件夹中加载第三方模块
 * 如果没有找到对应的第三方模块，则移动到再上一层父目录中，进行加载，直到文件系统的根目录
 * 
 * 
 */